package com.its.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.its.pojo.BusClaimReport;
import com.its.pojo.HupCompany;
import com.its.mapper.HupCompanyMapper;
import com.its.service.HupCompanyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.its.util.RedisUtil;
import com.its.web.param.HupCompanyControllerParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 公司表 服务实现类
 * </p>
 *
 * @author 朱厚强
 * @since 2023年12月27日
 */
@Service
public class HupCompanyServiceImpl extends ServiceImpl<HupCompanyMapper, HupCompany> implements HupCompanyService {
    @Autowired
    private HupCompanyMapper mapper;
    @Autowired
    private RedisTemplate  redisTemplate;
    @Autowired
    private RedisUtil redisUtil;
    @Override
    public PageInfo<HupCompany> selectList(HupCompanyControllerParam param) {
        // 开始分页
        PageHelper.startPage(param.getPageNum(),param.getPageSize());
        // 用lambda 表达式的方式生成
        LambdaQueryWrapper<HupCompany> queryWrapper = new LambdaQueryWrapper<>();
        // 根据公司名称来查询 -- 模糊查询
        if (StringUtils.isNotBlank(param.getName())){
            queryWrapper.like(HupCompany::getName,param.getName());
        }
        // 只查询存在的公司
        queryWrapper.eq(HupCompany::getIsActive,param.getIsActive());
        List<HupCompany> hupCompanies = mapper.selectList(queryWrapper);

//        /*
//            将省市区的key转换为具体的省市区名称
//         */
//        hupCompanies.forEach(hup ->{
//            // 获取到具体key之后就去查询
//            if (hup.getProvince() != null){
//                //  获取所有的省信息
//                List<String> pList = redisUtil.getAreaForRedis("0");
//                pList.forEach(p ->{
//                    // 获取具体的省信息
//                    Object pObj = redisTemplate.opsForHash().get("0", hup.getProvince());
//                    // 将这里的name值赋值给当前的 key 字段，以完成具体的省市区名字出现的效果
////                    hup.getProvince()
//                });
//                //  获取具体省下的所有的市信息
//                List<String> cList = redisUtil.getAreaForRedis(String.valueOf(hup.getProvince()));
//                cList.forEach(c ->{
//                    // 获取具体的市信息
//                    Object cObj = redisTemplate.opsForHash().get(hup.getProvince(), hup.getCity());
//                });
//                //  获取具体市下的所有的区信息
//                List<String> dList = redisUtil.getAreaForRedis(String.valueOf(hup.getCity()));
//                cList.forEach(d ->{
//                    // 获取具体的市信息
//                    Object cObj = redisTemplate.opsForHash().get(hup.getCity(), hup.getDistrict());
//                });
//            }
//        });
        return new PageInfo<>(hupCompanies);
    }


}
